package com.ljf.daily.makemoneysoftware.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ljf.common.model.BasisModel;
import com.ljf.daily.makemoneysoftware.enums.DailyDatMakeMoneySoftwareConfigAccountLimitModeEnum;
import com.ljf.daily.makemoneysoftware.enums.DailyDatMakeMoneySoftwareConfigAccountModeEnum;
import com.ljf.daily.makemoneysoftware.enums.DailyDatMakeMoneySoftwareConfigExecuteEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * 赚钱软件配置对象  daily_dat_make_money_software_config
 *
 * @author LJF
 * @since 2025-10-10
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("赚钱软件配置")
@EqualsAndHashCode(callSuper = true)
@TableName("daily_dat_make_money_software_config")
public class DailyDatMakeMoneySoftwareConfig extends BasisModel {

	private static final long serialVersionUID = 1L;

	/**
	 * Java类型: Long
	 * 数据库类型: bigint
	 * 注释: ID
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_ID}
	 */
	@JsonProperty("id")
	@ApiModelProperty(value = "ID")
	@TableId(value="id", type= IdType.AUTO)
	private Long id;

	/**
	 * Java类型: String
	 * 数据库类型: char(12)
	 * 注释: 编码
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_CODE}
	 */
	@TableField("code")
	@JsonProperty("code")
	@ApiModelProperty(value = "编码")
	private String code;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 新增执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_INSERT}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_insert")
	@JsonProperty("executeInsert")
	@ApiModelProperty(value = "新增执行")
	private Integer executeInsert;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 导入执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_IMPORT}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_import")
	@JsonProperty("executeImport")
	@ApiModelProperty(value = "导入执行")
	private Integer executeImport;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 模板执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_TEMPLATE}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_template")
	@JsonProperty("executeTemplate")
	@ApiModelProperty(value = "模板执行")
	private Integer executeTemplate;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 删除执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_DELETE}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_delete")
	@JsonProperty("executeDelete")
	@ApiModelProperty(value = "删除执行")
	private Integer executeDelete;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 消费执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_CONSUMPTION}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_consumption")
	@JsonProperty("executeConsumption")
	@ApiModelProperty(value = "消费执行")
	private Integer executeConsumption;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 费用预扣(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_COST_WITHHOLD}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_cost_withhold")
	@JsonProperty("executeCostWithhold")
	@ApiModelProperty(value = "费用预扣")
	private Integer executeCostWithhold;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 费用预扣调平(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_COST_WITHHOLD_LEVELING}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_cost_withhold_leveling")
	@JsonProperty("executeCostWithholdLeveling")
	@ApiModelProperty(value = "费用预扣调平")
	private Integer executeCostWithholdLeveling;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 费用消耗(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_COST_CONSUME}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_cost_consume")
	@JsonProperty("executeCostConsume")
	@ApiModelProperty(value = "费用消耗")
	private Integer executeCostConsume;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 费用消耗调平(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_COST_CONSUME_LEVELING}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_cost_consume_leveling")
	@JsonProperty("executeCostConsumeLeveling")
	@ApiModelProperty(value = "费用消耗调平")
	private Integer executeCostConsumeLeveling;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 费用调整(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_COST_DIFFERENCE}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_cost_difference")
	@JsonProperty("executeCostDifference")
	@ApiModelProperty(value = "费用调整")
	private Integer executeCostDifference;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 费用调整调平(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_EXECUTE_COST_DIFFERENCE_LEVELING}
	 * {@link DailyDatMakeMoneySoftwareConfigExecuteEnum}
	 */
	@TableField("execute_cost_difference_leveling")
	@JsonProperty("executeCostDifferenceLeveling")
	@ApiModelProperty(value = "费用调整调平")
	private Integer executeCostDifferenceLeveling;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 记账模式(1:限数;2:汇总;3:每天限数;4:每天汇总;5:每月限数;6:每月汇总;7:每年限数;8:每年汇总)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_ACCOUNT_MODE}
	 * {@link DailyDatMakeMoneySoftwareConfigAccountModeEnum}
	 */
	@TableField("account_mode")
	@JsonProperty("accountMode")
	@ApiModelProperty(value = "记账模式")
	private Integer accountMode;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 限数模式(1:不限数;2:限数)
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_ACCOUNT_LIMIT_MODE}
	 * {@link DailyDatMakeMoneySoftwareConfigAccountLimitModeEnum}
	 */
	@TableField("account_limit_mode")
	@JsonProperty("accountLimitMode")
	@ApiModelProperty(value = "限数模式")
	private Integer accountLimitMode;

	/**
	 * Java类型: Integer
	 * 数据库类型: int
	 * 注释: 限数
	 * {@link DailyDatMakeMoneySoftwareConfig#COL_LIMIT_NUM}
	 */
	@TableField("limit_num")
	@JsonProperty("limitNum")
	@ApiModelProperty(value = "限数")
	private Integer limitNum;


	/**
	 * ID
	 * {@link DailyDatMakeMoneySoftwareConfig#id}
	 */
	public static final String COL_ID = "id";
	/**
	 * 编码
	 * {@link DailyDatMakeMoneySoftwareConfig#code}
	 */
	public static final String COL_CODE = "code";
	/**
	 * 新增执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeInsert}
	 */
	public static final String COL_EXECUTE_INSERT = "execute_insert";
	/**
	 * 导入执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeImport}
	 */
	public static final String COL_EXECUTE_IMPORT = "execute_import";
	/**
	 * 模板执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeTemplate}
	 */
	public static final String COL_EXECUTE_TEMPLATE = "execute_template";
	/**
	 * 删除执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeDelete}
	 */
	public static final String COL_EXECUTE_DELETE = "execute_delete";
	/**
	 * 消费执行(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeConsumption}
	 */
	public static final String COL_EXECUTE_CONSUMPTION = "execute_consumption";
	/**
	 * 费用预扣(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeCostWithhold}
	 */
	public static final String COL_EXECUTE_COST_WITHHOLD = "execute_cost_withhold";
	/**
	 * 费用预扣调平(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeCostWithholdLeveling}
	 */
	public static final String COL_EXECUTE_COST_WITHHOLD_LEVELING = "execute_cost_withhold_leveling";
	/**
	 * 费用消耗(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeCostConsume}
	 */
	public static final String COL_EXECUTE_COST_CONSUME = "execute_cost_consume";
	/**
	 * 费用消耗调平(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeCostConsumeLeveling}
	 */
	public static final String COL_EXECUTE_COST_CONSUME_LEVELING = "execute_cost_consume_leveling";
	/**
	 * 费用调整(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeCostDifference}
	 */
	public static final String COL_EXECUTE_COST_DIFFERENCE = "execute_cost_difference";
	/**
	 * 费用调整调平(1:可执行;2:不可执行)
	 * {@link DailyDatMakeMoneySoftwareConfig#executeCostDifferenceLeveling}
	 */
	public static final String COL_EXECUTE_COST_DIFFERENCE_LEVELING = "execute_cost_difference_leveling";
	/**
	 * 记账模式(1:限数;2:汇总;3:每天限数;4:每天汇总;5:每月限数;6:每月汇总;7:每年限数;8:每年汇总)
	 * {@link DailyDatMakeMoneySoftwareConfig#accountMode}
	 */
	public static final String COL_ACCOUNT_MODE = "account_mode";
	/**
	 * 限数模式(1:不限数;2:限数)
	 * {@link DailyDatMakeMoneySoftwareConfig#accountLimitMode}
	 */
	public static final String COL_ACCOUNT_LIMIT_MODE = "account_limit_mode";
	/**
	 * 限数
	 * {@link DailyDatMakeMoneySoftwareConfig#limitNum}
	 */
	public static final String COL_LIMIT_NUM = "limit_num";

}
